﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;

namespace CellularAutomation.IView
{
	public interface ICellAutoView
	{
		///// <summary>
		///// Передает представлению новую таблицу состояний КА
		///// </summary>
		///// <param name="stateDataTable">Таблица состояний клеточного автомата</param>
		//void SetStateTable(DataTable stateDataTable);

		/// <summary>
		/// Передает представлению новый список координат живых клеток
		/// </summary>
		/// <param name="cellList">Список координат живых клеток</param>
		void SetAliveCellCoordList(IList<Point> cellList);

		/// <summary>
		/// Событие райзящееся отображением при изменении пользователем состояния какой-либо клетки
		/// </summary>
		event EventHandler<CellStateChangedEventArgs> CellStateChanged;

		/// <summary>
		/// Событие на запрос одного следующего шага КА
		/// </summary>
		event EventHandler<EventArgs> NextOneStep;

		/// <summary>
		/// Событие на создание решетки КА
		/// </summary>
		event EventHandler<CreateGridEventArgs> CreateGrid;
	}
}
